import AccessEnum from "./assess-enum"

/**
 * 检查权限(判断当前用户是否具有某个权限)
 *
 * @param loginUser 登录的用户
 * @param needAccess 需要的权限
 */
const checkAccess = (loginUser: LoginUser, needAccess = AccessEnum.NOT_LOGIN) => {
  const loginUserAccess = loginUser?.userRole ?? AccessEnum.NOT_LOGIN

  // 不需要权限
  if (needAccess === AccessEnum.NOT_LOGIN) {
    return true
  }

  // 需要登录权限
  if (needAccess === AccessEnum.USER) {
    if (loginUserAccess === AccessEnum.NOT_LOGIN) {
      return false
    }
  }

  // 需要管理员权限
  if (needAccess === AccessEnum.ADMIN) {
    if (loginUserAccess !== AccessEnum.ADMIN) {
      return false
    }
  }

  return true
}

export default checkAccess
